package org.demo.resttemplate;

import java.util.Arrays;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@Slf4j
public class RestTemplateApplication {

	public static void main(String[] args) {
		SpringApplication.run(RestTemplateApplication.class, args);
	}
	
	
	@Bean 
	public CommandLineRunner commandLineRunner(ApplicationContext ctx, RestTemplate restTemplate) {
		return args -> {
			System.out.println("Let's inspect the beans provided by Spring Boot: ");
			
			String[]  beanNames = ctx.getBeanDefinitionNames(); 
			Arrays.sort(beanNames);
			for (String beanName : beanNames) {
				System.out.println(beanName);
			}

			String quote = restTemplate.getForObject("http://gturnquist-quoters.cfapps.io/api/random", String.class);
			log.info(quote);
		};
	}

	@Bean
	public RestTemplate restTemplate(RestTemplateBuilder builder){
		return builder.build();
	}


}
